op {
  graph_op_name: "AssignVariableXlaConcatND"
  visibility: HIDDEN
  in_arg {
    name: "resource"
    description: <<END
Resource variable for concatenated input tensors across all dimensions.
  }
  in_arg {
    name: "inputs"
    description: <<END
Input tensor slices in row-major order to merge across all dimensions. All
inputs must have the same shape.
  }
  out_arg {
    name: "output"
    description: <<END
Output tensor formed from merging input slices based on num_concats defined.
END
  }
  attr {
    name: "num_concats"
    description: <<END
Number of ways to merge per dimension.
END
  }
  attr {
    name: "paddings"
    description: <<END
Optional list of right paddings per dimension to strip from the final merged
tensor. These paddings must not exceed the dimension size of the merged result
prior to stripping paddings.
END
  }
  summary: "Concats input tensor across all dimensions."
  description: <<END
An op which merges slices the input tensor based on the given num_splits
attribute, strips paddings optionally, and writes the merged tensor without
paddings to the resource variable.

This op may be generated via the TPU bridge.

For example, with `input` tensor:
```
[[0, 1],
 [4, 5]]
[[2, 3],
 [6, 7]]
[[8, 9],
 [12, 13]]
[[10, 11],
 [14, 15]]
```
`num_splits`:
```
[2, 2]
```
and `paddings`:
```
[1, 1]
```
the expected `outputs` is:
```
[[0, 1, 2],
 [4, 5, 6],
 [8, 9, 10]]
```
END
}
